home *** CD-ROM | disk | FTP | other *** search
- ; 私製ライブラリ・グラフィック篇
- ; (c) MATSUUCHI Ryosuke in Dec,1992
- ;
- ; gwrtreg.asm
- ;
- ; 1992.12.28(Sun)
-
- public _gwrtreg, gwrtreg
-
- include grplib.inc
-
- assume cs:cseg, ds:dseg
-
-
- dseg segment dword 'DATA'
- dseg ends
-
-
-
- cseg segment dword 'CODE'
-
- ;---------------------------------------------------------------
- ; _gwrtreg : 表示機能レジスタへの書き込み
- ; in AX:レジスタ番号
- ; EDX:データ
- ;
- ; void gwrtreg(int reg, unsigned int dat)
- ;---------------------------------------------------------------
-
- ;レジスタ番号と実際のレジスタとの対応:
- ; (番号) (サイズ) (機能)
- ; 0 DWord パックドピクセルマスクレジスタ
-
-
- gwrtreg proc near
- mov ax,[esp+4]
- mov edx,[esp+8]
- call _gwrtreg
- ret
- gwrtreg endp
-
-
- _gwrtreg proc
- push eax
- push ebx
- push ecx
- push edx
- mov bx,ax ;BX = reg#
- mov ecx,edx ;ECX = data
- cmp ax,0
- jne #0
- ; ;AX=0 (パックドピクセルマスクレジスタ)
- call reg_packPixel
- jmp #1
- #0:
- #1: pop edx
- pop ecx
- pop ebx
- pop eax
- ret
- _gwrtreg endp
-
-
- ; reg_packPixel : パックドピクセルマスクレジスタへの書き込み
- ; in ECX : data
- ; reg eax,ecx,edx
-
- reg_packPixel proc
- mov dx,458h ; (下位ワードの書き込み)
- xor al,al
- out dx,al
- add dx,2
- mov al,cl
- out dx,al
- inc dx
- mov al,ch
- out dx,al
- shr ecx,16 ; (上位ワードの書き込み)
- mov dx,458h
- mov al,1
- out dx,al
- add dx,2
- mov al,cl
- out dx,al
- inc dx
- mov al,ch
- out dx,al
- ret
- reg_packPixel endp
-
-
- cseg ends
-
- end
-